package com.eastfair.venuebooking.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 实体类
 * 展会
 * </p>
 *
 * @author linan
 * @since 2022-06-08
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "ExhibitionPageQuery", description = "展会")
public class ExhibitionQuery implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ApiModelProperty(value = "主键id")
    private Long id;

    /**
     * 展会状态(1无状态，2销售商机，3报价确认，4活动确认，5创立合同，6合同付款，7活动结算，8活动结束，9其他状态)
     */
    @ApiModelProperty(value = "展会状态(1无状态，2销售商机，3报价确认，4活动确认，5创立合同，6合同付款，7活动结算，8活动结束，9其他状态)")
    private String state;

    /**
     * 关键词
     */
    @ApiModelProperty(value = "关键词")
    private String keywords;
    /**
     * 展览开始时间
     */
    @ApiModelProperty(value = "展览开始时间")
    private LocalDateTime exhibitionStartTime;
    /**
     * 展览结束时间
     */
    @ApiModelProperty(value = "展览结束时间")
    private LocalDateTime exhibitionEndTime;
    /**
     * 布展开始时间
     */
    @ApiModelProperty(value = "布展开始时间")
    private LocalDateTime arrangementStartTime;
    /**
     * 布展结束时间
     */
    @ApiModelProperty(value = "布展结束时间")
    private LocalDateTime arrangementEndTime;
    /**
     * 撤展开始时间
     */
    @ApiModelProperty(value = "撤展开始时间")
    private LocalDateTime dismantlingStartTime;
    /**
     * 撤展结束时间
     */
    @ApiModelProperty(value = "撤展结束时间")
    private LocalDateTime dismantlingEndTime;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private Long createdBy;
    /**
     * 相关人员id
     */
    @ApiModelProperty(value = "相关人员id")
    private Long userId;
    /**
     * 是否当月 1 是
     */
    @ApiModelProperty(value = "是否当月 1 是")
    private Integer isThisMonth;
    /**
     * 客户id
     */
    @ApiModelProperty(value = "客户id")
    private Long customerId;
    /**
     * 展会项目id
     */
    @ApiModelProperty(value = "展会项目ID")
    private Long exhibitionProjectId;
    /**
     * 客户ID列表
     */
    @ApiModelProperty(value = "客户ID列表")
    private List<Long> customerIdList;
    /**
     * 商机ID列表
     */
    @ApiModelProperty(value = "商机ID列表")
    private List<Long> businessOpportunityIdList;

    /**
     * 所属行业 #{INDUSTRY_ONE:农林渔牧;INDUSTRY_TWO:工业智造;INDUSTRY_THREE:新兴产业;INDUSTRY_FOUR:美好生活;OTHER:其他}
     */
    @ApiModelProperty(value = "所属行业 #{INDUSTRY_ONE:农林渔牧;INDUSTRY_TWO:工业智造;INDUSTRY_THREE:新兴产业;INDUSTRY_FOUR:美好生活;OTHER:其他}")
    private String industry;
    /**
     * 展会名称
     */
    @ApiModelProperty(value = "展会名称")
    private String exhibitionName;

}
